package GUI.ventas;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JOptionPane;
//import javax.swing.JLabel;
import javax.swing.JPanel;
//import javax.swing.JScrollPane;
import javax.swing.SwingConstants;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;

import GUI.Principal;

public class CategoriasYPago extends JPanel {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JPanel _panelCategorias;
	private JButton _alimentacion;
	private JButton _perfumeria;
	private JButton _higiene;
	private JPanel _panelSurPago;
	private Compra tPVQueActualizaTabla;
	private CategoriasYPago yo = this;
	private JPanel _panelmolon;

	/**
	 * botones segun la vista
	 * 
	 * 
	 * private JButton _cero; private JButton _uno; private JButton _dos;
	 * private JButton _tres; private JButton _cuatro; private JButton _cinco;
	 * private JButton _seis; private JButton _siete; private JButton _ocho;
	 * private JButton _nueve;
	 */
	/**
	 * botones para pagar
	 */

	private JButton _botonEfectivo;
	private JButton _botonTarjeta;
	private JButton _botonPayPal;
	private JButton _botonNuevaCompra;
	
	private FachadaVentas fachada;
	private Connection BD;


	public CategoriasYPago(Compra t,Connection c) {
		super();
		this.BD=c;
		tPVQueActualizaTabla = t;
		this.construyePanelCategoriaAlimentos();
		this.construyePanelSurParaPago();
		this.construyeVistasSegunBotonPresionado();
		this.nuevaCompra();
		this.metodosDePago();
		this.fachada = new FachadaVentas();
	}

	public void construyePanelCategoriaAlimentos() {
		// CATEGORIAS
		_panelCategorias = new JPanel();
		this.setLayout(new BorderLayout());
		this.add(_panelCategorias, BorderLayout.NORTH);
		this._panelCategorias.setLayout(new BorderLayout());
		this._panelCategorias.setBorder(BorderFactory
				.createTitledBorder("CATEGOR�AS"));
		this._panelCategorias.setLayout(new GridLayout(1, 3, 9, 9));

		// BOTON ALIMENTACION
		this._alimentacion = new JButton("ALIMENTACI�N");
		this._panelCategorias.add(_alimentacion);
		this._alimentacion.setIcon(new ImageIcon(this.getClass().getResource(
				".//imagenes//alimentacion2.png")));
		this._alimentacion.setIconTextGap(2);
		this._alimentacion.setHorizontalTextPosition(SwingConstants.CENTER);
		this._alimentacion.setVerticalTextPosition(SwingConstants.BOTTOM);

		// BOTON PERFUMERIA
		this._perfumeria = new JButton("PERFUMER�A");
		this._panelCategorias.add(_perfumeria);
		this._perfumeria.setIcon(new ImageIcon(this.getClass().getResource(
				".//imagenes//perfumes2.png")));
		this._perfumeria.setIconTextGap(2);
		this._perfumeria.setHorizontalTextPosition(SwingConstants.CENTER);
		this._perfumeria.setVerticalTextPosition(SwingConstants.BOTTOM);

		// BOTON ALIMENTACION
		this._higiene = new JButton("HIGIENE");
		this._panelCategorias.add(_higiene);
		this._higiene.setIcon(new ImageIcon(this.getClass().getResource(
				".//imagenes//higiene2.png")));
		this._higiene.setIconTextGap(2);
		this._higiene.setHorizontalTextPosition(SwingConstants.CENTER);
		this._higiene.setVerticalTextPosition(SwingConstants.BOTTOM);
		_panelmolon = new JPanel();
		this.add(_panelmolon, BorderLayout.CENTER);

	}

	public void construyePanelSurParaPago() {
		_panelSurPago = new JPanel();
		_panelSurPago.setBorder(new TitledBorder(new EtchedBorder(), "PAGO"));
		this.add(_panelSurPago, BorderLayout.SOUTH);
		this._panelSurPago.setLayout(new GridLayout(1, 3, 9, 9));
		// efectivo
		this._botonEfectivo = new JButton("EFECTIVO");
		this._panelSurPago.add(_botonEfectivo);
		this._botonEfectivo.setIcon(new ImageIcon(this.getClass().getResource(
				".//imagenes//efectivo.png")));
		this._botonEfectivo.setIconTextGap(2);
		this._botonEfectivo.setHorizontalTextPosition(SwingConstants.CENTER);
		this._botonEfectivo.setVerticalTextPosition(SwingConstants.BOTTOM);
		// tarjeta
		this._botonTarjeta = new JButton("TARJETA");
		this._panelSurPago.add(_botonTarjeta);
		this._botonTarjeta.setIcon(new ImageIcon(this.getClass().getResource(
				".//imagenes//tarjeta.png")));
		this._botonTarjeta.setIconTextGap(2);
		this._botonTarjeta.setHorizontalTextPosition(SwingConstants.CENTER);
		this._botonTarjeta.setVerticalTextPosition(SwingConstants.BOTTOM);
		// paypal
		this._botonPayPal = new JButton("Pay-Pal");
		this._panelSurPago.add(_botonPayPal);
		this._botonPayPal.setIcon(new ImageIcon(this.getClass().getResource(
				".//imagenes//paypal.png")));
		this._botonPayPal.setIconTextGap(2);
		this._botonPayPal.setHorizontalTextPosition(SwingConstants.CENTER);
		this._botonPayPal.setVerticalTextPosition(SwingConstants.BOTTOM);
		// Nueva Compra

		this._botonNuevaCompra = new JButton("Nueva Compra");
		this._panelSurPago.add(_botonNuevaCompra);
		// le damos una tipograf�a
		this._botonNuevaCompra.setFont(new Font("Arial", 1, 12));
		// le damos un color a la fuente
		this._botonNuevaCompra.setForeground(Color.red);
		this._botonNuevaCompra.setHorizontalTextPosition(SwingConstants.CENTER);
		this._botonNuevaCompra.setVerticalTextPosition(SwingConstants.BOTTOM);
	}

	private void construyeVistasSegunBotonPresionado() {
		_alimentacion.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				//Alimentacion a = new Alimentacion(tPVQueActualizaTabla);
				fachada.buildCategoriaAlimentacion(tPVQueActualizaTabla,yo,BD);
				yo.setVisible(true);
			

			}
		});

		_higiene.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//				Higiene h = new Higiene(tPVQueActualizaTabla);
				fachada.buildCategoriaHigiene(tPVQueActualizaTabla,yo);
			}
		});

		_perfumeria.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//				Perfumeria p = new Perfumeria(tPVQueActualizaTabla);
				fachada.buildCategoriaPerfumeria(tPVQueActualizaTabla, yo);
			}
		});
	}



	public void nuevaCompra() {
		_botonNuevaCompra.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {

				int respuesta = JOptionPane.showConfirmDialog(null,
						"�Iniciar Nueva Compra?", "NUEVA COMPRA",
						JOptionPane.YES_NO_OPTION);

				if (respuesta == 0) {
					tPVQueActualizaTabla.borrarTabla();
					tPVQueActualizaTabla.reiniciaLabelCompra();
					// tPVQueActualizaTabla.actualizaFecha();
					int nuevaFactura = tPVQueActualizaTabla.incrementoFactura();
					tPVQueActualizaTabla
							.actualizalabelInfoFacturaVendedor(nuevaFactura);
				}

			}
		});
	}
	

	private void metodosDePago() {
		_botonEfectivo.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
					
//				Efectivo efectivo = new Efectivo(tPVQueActualizaTabla);
				fachada.buildMetodoDePagoEfectivo(tPVQueActualizaTabla);

			}
		});
		_botonTarjeta.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
					
//				PagoTarjeta tarjeta = new PagoTarjeta(tPVQueActualizaTabla);
				fachada.buildMetodoDePagoTarjeta(tPVQueActualizaTabla);

			}
		});
		_botonPayPal.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
					
//				PayPal payPal = new PayPal(tPVQueActualizaTabla);
				fachada.buildMetodoDePagoPayPal(tPVQueActualizaTabla);

			}
		});
	}

	public JPanel get_panelCategorias() {
		return _panelCategorias;
	}

	public void set_panelCategorias(JPanel _panelCategorias) {
		this._panelCategorias = _panelCategorias;
	}

	public JPanel get_panelmolon() {
		return _panelmolon;
	}

	public void set_panelmolon(JPanel _panelmolon) {
		this._panelmolon = _panelmolon;
	}
	public void SetInternalPanel(JPanel panel){
		this.remove(this._panelmolon);
		this._panelmolon=panel;
		this.add(panel, BorderLayout.CENTER);
		this.updateUI();
		
		
	}
}
